home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 10 / The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso / PC_SIGCD / 20 / 9 / DISK2096.ZIP / FONTED.ARC / FONTED.DOC < prev    next >
Text File  |  1990-02-16  |  38KB  |  836 lines

  1.                FONTED      ((c) B.Meißner, 1989)
  2.                ════════════════════════════════
  3.  
  4.                    Author:
  5.                    Burkhard Meißner
  6.                  Friedheim 86
  7.                 2390 Flensburg
  8.              Federal Republic of Germany
  9.                  tel.: 0049-461-30315
  10.  
  11.                    Notice:
  12.                    ───────
  13.  
  14. FONTED is a very flexible program that you can forge to you special needs;  be
  15. sure  to  read    the  remainder    of  this  file    to  become acquainted with the
  16. program's features.
  17.  
  18. You should  print this    file in  order to  have its  information at hand, when
  19. working with FONTED.
  20.  
  21.  
  22.                 Contents of this file:
  23.                 ──────────────────────
  24.  
  25.  1)    The Shareware concept
  26.  2)    About the author
  27.  3)    Disclaimer
  28.  4)    Purpose
  29.  5)    Hardware requirements
  30.  6)    Starting the program
  31.  7)    Parameter file
  32.  8)    How to get help
  33.  9)    Editing a font
  34. 10)    Example screen display
  35. 11)    Alternate pixels
  36. 12)    Insert/Delete
  37. 13)    Move character within box
  38. 14)    Fold, turn or miniaturize character
  39. 15)    Change width of character box (matrix)
  40. 16)    Read area into paste buffer
  41. 17)    Paste contents of paste buffer to location in character display
  42. 18)    Invert character
  43. 19)    Discard all changes and restore original character
  44. 20)    Changing right or left widths
  45. 21)    Switching to a new character
  46. 22)    Using the alphabet display
  47. 23)    Changing the font type
  48. 24)    Saving your font
  49. 25)    Using your font
  50. 26)    Editing fonts without initialization string
  51. 27)    Editing draft quality fonts
  52. 28)    Merging two fonts
  53. 29)    General advice
  54. 30)    Technical information
  55. 31)    Example fonts and program files
  56.  
  57.  
  58. 1)                The Shareware concept:
  59.                 ──────────────────────
  60.  
  61. All FONTED files, the FONTED.EXE program module and all accompanying  software
  62. and font files are copyright Burkhard Meißner.
  63.  
  64. Permission, however, is granted to everybody to copy and share these files and
  65. to pass copies of the program and all accompanying files, provided that:
  66.  
  67. - no fee  is charged on  such copying and  distribution, except for  a nominal
  68. charge, covering the real costs of copying and distributing the software. All
  69. copying and distribution for commercial purposes is explicitly excluded.
  70.  
  71. - all files are distributed together and in unaltered form; patched, truncated
  72. or enlarged files of the FONTED package must not be copied and distributed  to
  73. any third party
  74.  
  75. - the  distributed files  are not  embodied in    a new  environment of software
  76. alien to the FONTED system, be it of commercial or non-commercial character
  77.  
  78. We think it is fair to ask  for a small registration fee that you  should send
  79. us,  if  you  use  FONTED  for    your  own  purposes.    Especially, if you are
  80. distributing font files around that you have produced or edited using  FONTED,
  81. you should send us such a contribution.  We think, $ 15 (25 DM in Germany)  is
  82. appropriate.    Such  contribution  will  be  gratefully received.  If for any
  83. reason the program proves exceptionally  useful to you, you are  encouraged to
  84. send more, if you can  afford it.  If you  want to give us your  comments, bug
  85. reports or  suggestions for  improvements, we  will certainly  appreciate your
  86. efforts gratefully.  Please send all communications and contribution to
  87.  
  88.                   Burkhard Meissner
  89.                  Friedheim 86
  90.                    D-2390 Flensburg
  91.                     tel.:
  92.             0049-461-30315 (from overseas)
  93.                0461-30315 (from within Germany)
  94.  
  95.  
  96.                   About the author:
  97. 2)                  ─────────────────
  98.  
  99. I am a classicist, working in the field of Ancient History.  This year, I have
  100. submitted a doctoral thesis  to the university of  Heidelberg.    Besides, I  am
  101. working  at  the  history  department  of the Technische Hochschule Darmstadt.
  102. Over the last years, I    have acquired some programming experience  in SNOBOL4,
  103. MacroSPITBOL, assembly language  and the C  programming language.   Most of my
  104. programming  is  done  in  connection  with  my work and is therefore strictly
  105. nonnumeric  in    character.    For  such  purposes,  the  SPITBOL  and  SNOBOL4
  106. programming languages  are especially  well suited.   If,  by chance, you have
  107. something of this  kind to be  done, get into  contact with me;  perhaps I can
  108. help you with your programming needs.
  109.  
  110.  
  111. 3)                 Disclaimer:
  112.                  ───────────
  113.  
  114. The author does not warrant that  the functions contained in the program  will
  115. meet any  users requirements  or that  the operation  of the  program will  be
  116. uninterrupted or error-free.  In no  event will the author or the  distributor
  117. be liable to the user for any damages, including lost profits, lost savings or
  118. other incidental or consequential damages arising out of the use or  inability
  119. to use the program, even if the author has been advised of the possibility  of
  120. such damages, or for  any claim by any    other party.  The  program is provided
  121. "as is",  without warranty  of any  kind, either  expressed or  implied.   The
  122. entire risk as to the quality and performance of the program is with the user.
  123. Should the program prove  defective, the user assumes  the entire cost of  all
  124. necessary servicing, repair or correction.  Liability is limited to  replacing
  125. the software or refunding the purchasing price.
  126.  
  127.  
  128. 4)                   Purpose:
  129.                    ────────
  130.  
  131. The Program reads, edits and writes binary download fonts for NEC P6/EPSON  LQ
  132. class printers in letter quality or draft mode.
  133.  
  134. The program is extraordinarily flexible and  can be configured by the user  to
  135. his particular needs.
  136.  
  137. Besides the  more usual  editing activities  it supports  cutting and  pasting,
  138. inversion of pixels,  folding and size    reduction along two  axes and character
  139. moving.
  140.  
  141. The  program  allows  for  the    automatic  creation  of  a  widths  table file
  142. containing all necessary information about your font to allow it to be used by
  143. several word processors.  FONTED fonts are suitable for use in connection with
  144. most professional word processors.
  145.  
  146.  
  147. 5)                Hardware requirements:
  148.                 ──────────────────────
  149.  
  150. The program uses the default monochrome display.  No graphics capabilities are
  151. required.  You may have to adjust the brightness and contrast settings of  you
  152. CRT in order to be able to distinguish between two variant cursor forms in the
  153. character display (see below).     Memory requirements:  220 KByte  free memory.
  154. Some non-critical BIOS calls are made for the screen and the keyboard.    If you
  155. have a very non-standard BIOS, this may cause the program to not work on  your
  156. machine.  On startup, allow some time for initialization.  To make use of  the
  157. fonts produced, you should have a 24 pin printhead printer that complies  with
  158. the EPSON LQ/NECP 5  6 7 standard and  allows for the downloading  of external
  159. font files.
  160.  
  161. 6)                Starting the program:
  162.                 ─────────────────────
  163.  
  164. Type
  165.  
  166. FONTED
  167.  
  168. on the DOS prompt.
  169.  
  170. If you want to modify an existing font, add the filename of the font:
  171.  
  172. FONTED font.bin
  173.  
  174. Before editing    an existing  font, you    should make  sure that    you have  made
  175. backup copies of your font.  There is always the possibility of some  hardware
  176. or software malfunction.   For the  same reason ensure    that you have  taken a
  177. backup of the program file itself.
  178.  
  179. Allow some time for the program to initialize.
  180.  
  181. 7)                   Parameter file:
  182.                    ───────────────
  183.  
  184. The program  reads a  configuration file  FONTED.CNF that  must reside    in the
  185. current working directory.  It contains information about fonts and  parameter
  186. settings to the program.  Basically,  its lines have the following format  (in
  187. sequence):
  188.  
  189. FONT_DESIGNATOR_SYMBOL (2 letters)
  190. =
  191. INITIALIZATION_STRING (numbers represent ASCII byte values)
  192. =
  193. MAXIMUM_LETTER_MATRIX (must be given)
  194. =
  195. FIXED_TOTAL_CHARACTER_WIDTH (optional, default: proportional spacing)
  196.  
  197. Such a line might read (* marks comments):
  198.  
  199. *
  200. * Definition for ELite printing:
  201. * Maximum matrix width allowed = 26
  202. * Fixed character width = 30
  203. *
  204. EL=27 120 1 27 77=26=30
  205.  
  206. Nomenclature:
  207.  
  208. FONT_DESIGNATOR_SYMBOL:   A symbolic  name, given  to a  specific font    by the
  209. user.  The font type is referred to by this symbolic name within the program.
  210.  
  211. INITIALIZATION_STRING:    This is a sequence  of bytes at the beginning of  your
  212. font file.  Any sequence of bytes  may occur; for instance you might choose  a
  213. sequence that  initializes the    printer completely  and sets  it to a specific
  214. pitch/quality combination.   These  bytes must    have meaning  to your printer.
  215. Strictly speaking, these bytes are nothing  more than a "header" to your  font
  216. file, because the commands for loading your font into the printer's memory are
  217. written to the file by FONTED automatically.  Nevertheless, these header bytes
  218. are used by FONTED to distinguish between different font types.
  219.  
  220. MAXIMUM_LETTER_MATRIX:    Maximum width of  the character proper (ranges from  1
  221. to 43).
  222.  
  223. FIXED_TOTAL_CHARACTER_WIDTH:  In a fixed spacing font, the sum of three values
  224. sent to  the printer  must be  constant:   (a) the  space to  the left    of the
  225. character, (b) the space occupied by the character itself and (c) the space to
  226. the  right  of    the  character.    If  given, the program adjusts these values
  227. automatically.      If  a  given    maximum  character  matrix  width  exceeds the
  228. character's total widths, the program aborts width an error message.
  229.  
  230. This information  is used  by the  program on  reading and  writing your font.
  231. Thus, all necessary "header" information about  your font must be given.   If,
  232. for instance, your font initializes the printer before downloading, modify the
  233. string accordingly:
  234.  
  235. EL=27 64 27 120 1 27 77=26=30
  236.  
  237. You can enter  a variety of  such font definitions.   If you  do not want your
  238. font to initialize the    printer automatically, or if  you want the program  to
  239. recognize an existing  font of this  kind, you should  not insert any  numbers
  240. between the first = and the second = signs.  The first two letters are used by
  241. the  program  to  identify  your  font.    Later you will use these letters to
  242. communicate with the program about font type changes etc.  If you want to have
  243. your  font  as    a  proportional   font,  leave    out  the  last     fixed    widths
  244. specification (and the preceeding = sign), if you like.  Take care not to feed
  245. irregular values to the program; this may cause it to abort with an error.
  246.  
  247. Note:  You can specify character matrix widths up to 43.  NEC P 5 6 7 printers
  248. cannot have characters built of more than 37 columns!
  249.  
  250. In addition, you can alter the default character range.  The default  settings
  251. are:
  252.  
  253. * Set first letter  to 32 (space) and last letter to  127
  254. * (BACKSPACE-DELETE)
  255. FL=32 LL=127
  256.  
  257. You  are,  however,  not  encouraged  to  select  a very wide character range,
  258. because the program's  capacity is limited.   This can  result in the  program
  259. memory's overflowing and in an abnormal  ending of FONTED.  FONTED works  best
  260. with the settings in this package's FONTED.CNF file.
  261.  
  262. Normally, matrix printers do  not allow for pixels  to be printed in  adjacent
  263. columns.   This may  cause damage  to your  printer's print  head, and we have
  264. designed the program  to check for  occurrences of double  pixels effectively.
  265. To override these checks, enter
  266.  
  267. DOUBLE=Y
  268.  
  269. in  the  configuration    file.     You  are  strongly discouraged from doing so,
  270. because this may cause harm to your print head.
  271.  
  272. Instead of inserting this  line in the configuration  file, you can call  FONTED
  273. with the /N parameter.     When editing printer  fonts, you should never    do this,
  274. however.
  275.  
  276. Enclosed with this program you will find a fully annotated configuration  file
  277. FONTED.CNF (with embedded  comments) that you  should consult before  altering
  278. the configuration or writing a new FONTED.CNF file.
  279.  
  280. 8)                   How to get help:
  281.                    ────────────────
  282.  
  283. Once you are  in the character    display, you can  always invoke a  simple HELP
  284. facility.   On pressing  ALT-H, you  can have  the program  display to you the
  285. contents of a  file FONTED.HLP.   If this file    is not present    in the current
  286. directory,  you  get  an  error  message  instead.   The help file displays an
  287. overview over the FONTED keys and  some additional information.  After any  of
  288. its screens you can  either return to editing  or continue getting help.   The
  289. help file itself is a simple ASCII text file, that means, you can edit it  and
  290. change it to your needs.
  291.  
  292. In fact, FONTED displays every possible contents of the file FONTED.HLP.  Once
  293. you  have  become  more  familiar  with  the  program,    you can think of using
  294. FONTED.HLP to get your current directory.  A sensible strategy to pursue would
  295. be to rename your FONTED.HLP file  to some other name, say FONTHELP.TXT.   You
  296. would then start your font editor from a batch file along the following lines:
  297.  
  298. ECHO OFF
  299. CLS
  300. DIR /w > DIR.TXT
  301. COPY FONTHELP.TXT + DIR.TXT FONTED.HLP
  302. FONTED %1
  303.  
  304. Suppose, you  have named  this batch  file FE.BAT.   Editing  an existing font
  305. would then require you    to enter FE font.fil.    On pressing ALT-H  from within
  306. the font editor  you would see    your current directory    AFTER the font    editor
  307. information.  To get it right at the beginning of the font editor replace  the
  308. fourth batch file line by
  309.  
  310. COPY DIR.TXT + FONTHELP.TXT FONTED.HLP
  311.  
  312. The initial help screen you get  on pressing ALT-H gives an overview  over all
  313. FONTED command keys:
  314.  
  315. ╔════════════════════════════════╤═══════════════════════════════════════════╗
  316. ║ [CHAR]  go to CHARacter     │ [Home],[End] Beginning, end of row         ║
  317. ║ [Alt-A] Go to ALPHABET display │ [PgUp/Dn]    Top/bottom of column         ║
  318. ║ [Alt-B] Previous character     │ [Ctrl-Left]    Move character 1 col. left   ║
  319. ║ [Alt-C] anti-Clockwise turn     │ [Ctrl-Right] Move character 1 col. right  ║
  320. ║ [Alt-D] Duplicate to buffer     │ [Ctrl-PgUp]    Move character 1 row up      ║
  321. ║ [Alt-H] type Help text     │ [Ctrl-PgDn]    Move character 1 row down    ║
  322. ║ [Alt-I] Invert pixels in char. │ [+]        Insert row into character    ║
  323. ║ [Alt-L] change Left width     │ [-]        Delete row from character    ║
  324. ║ [Alt-M] Mark for paste buffer  │ [Esc]    Restore character         ║
  325. ║ [Alt-N] Next character     │ [Ins]    Insert column into character ║
  326. ║ [Alt-P] Paste buffer contents  │ [Del]    a) in character display:     ║
  327. ║ [Alt-R] change Right width     │           Delete column         ║
  328. ║ [Alt-S] delete every 2nd col.  │        b) in ALPHABET display:      ║
  329. ║ [Alt-T] change font Type     │           Delete (undefine) char.   ║
  330. ║ [Alt-X] eXtract every 2nd row  │ <RETURN>    a) in character display:     ║
  331. ║ [Alt-1] Fold char. vertically  │           alternate pixel at cursor ║
  332. ║ [Alt-2] Fold char. horizont.     │           position             ║
  333. ║ [F1]      Decrease matrix width  │        b) in ALPHABET display:      ║
  334. ║ [F2]      Increase matrix width  │           go to character         ║
  335. ║ [F6]      Increase matrix width  │ Ctrl-<RETURN>   EXIT/SAVE             ║
  336. ╚════════════════════════════════╧═══════════════════════════════════════════╝
  337.  
  338.  
  339. 9)                   Editing a font:
  340.                    ───────────────
  341.  
  342. The program proper displays a screen, divided into three parts:
  343.  
  344. Left side:  The character display  Right upper corner:    The parameter  display
  345. Right lower corner:  The alphabet display
  346.  
  347. The character  display always  shows the  actual character  being edited,  the
  348. parameter display shows  the font type    (2 letter symbol),  the character, its
  349. ASCII value and three widths informations:  the space left of the matrix,  the
  350. matrix width itself (center) and additional space right of the matrix  proper.
  351. The actual cursor position is  shown and updated continuously.     The character
  352. matrix    frame  contains  two  markers  for  the  base  line  of normally-sized
  353. characters (19).   The    alphabet display  shows the  full ASCII character set,
  354. with an arrow indicating the actual character and small circles for all  those
  355. characters that have  been defined and    are contained in  the actual character
  356. set.
  357.  
  358. The character box  in the character  display is made  of two elements,    dots ·
  359. signifying a non-printing  position and boxes  █ signifying a  printing pixel.
  360. The overall  dimensions of  the character  box represent  the printing    letter
  361. shape exactly, the pixels, however, are of different shape (squared instead of
  362. circular).  Nevertheless, the character display should give you a rather clear
  363. idea of  how the  printing letter  will look  like.   Around the character box
  364. there is a  frame which indicates  the actual box  size limits.   These can be
  365. altered (see below).  Two markers indicate the default base line (19).
  366.  
  367. 10)               Example screen display:
  368.                ───────────────────────
  369.  
  370.   │▒····································│      Curs: 01:01    Char:    w (119)
  371.   │·····································│      Help: Alt-H
  372.   │·····································│      Type: PR          Left:    4
  373.   │·····································│                 Center: 37
  374.   │·····································│                 Right:   4
  375.   │·····································│
  376.   │······█·······················█······│
  377.   │···█·█·························█·█···│
  378.   │··█·█·············█·············█·█··│      <---NON-PRINTING--CHARACTERS--->
  379.   │·█·█·············█·█·············█·█·│
  380.   │·█·█·············█·█·············█·█·│    !"#$%&'()*+,-./0123456789:;<=>?
  381.   │█·█··············█·█··············█·█│               °°°°°°°°°°
  382.   │█·█··············█·█··············█·█│      @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
  383.   │█·█···············█···············█·█│       ° °°  °°°  °°°     °°°    °°
  384.   │·█·█··············█··············█·█·│      `abcdefghijklmnopqrstuvwxyz{|}~
  385.   │·█·█·············█·█·············█·█·│      °° ° °°°°°°°°°°°°°°°°° °°°
  386.   │··█·█···········█···█···········█·█··│      ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒ
  387.   │···█·█·······█·█·····█·█·······█·█···│
  388.   ╞······█·█·█·█···········█·█·█·█······╡      áíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐
  389.   │·····································│
  390.   │·····································│      └┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀
  391.   │·····································│
  392.   │·····································│      αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ 
  393.   │·····································│
  394.   └─────────────────────────────────────┘
  395.  
  396.  
  397. (Notice:  <---NON-PRINTING--CHARACTERS---> are not shown as they  appear
  398. on the screen)
  399.  
  400.  
  401. Editing a character in the character display:
  402. Cursor movement:    CURS_UP
  403.             CURS_DN
  404.             CURS_RT
  405.             CURS_LF
  406.             HOME        To left margin
  407.             END        To right margin
  408.             PG_UP        To upper margin
  409.             PG_DN        To lower margin
  410.  
  411. 11)                  Alternate pixels:
  412.                   ─────────────────
  413.  
  414.             RETURN        Switches between  pixel set  and
  415.                     pixel  not  set.    If    you  are
  416.                     creating   double   pixels,  the
  417.                     program detects this and  issues
  418.                     a  warning  beep.    The  change
  419.                     affected is  not executed.   You
  420.                     can override this check:   Start
  421.                     the program  with the  /n or  /N
  422.                     parameter (e.d.:  FONTED file.in
  423.                     /n) [or use DOUBLE=Y].
  424.  
  425.                     There are  two different  cursor
  426.                     forms, one for    the cursor on  a
  427.                     pixel set, one for the cursor on
  428.                     a non-printing pixel position.
  429.  
  430.                     On a pixel set, the cursor looks
  431.                     like ▓, otherwise it shows up as
  432.                     ▒. If, on reading these lines on
  433.                     your CRT, you cannot distinguish
  434.                     between  these    two  characters,
  435.                     you  should  probably  re-adjust
  436.                     your   brightness   and  display
  437.                     contrast settings.
  438.  
  439. 12)                 Insert/Delete:
  440.                  ──────────────
  441.  
  442.             INS        Insert Column at cursor position
  443.             DEL        Delete Column at cursor position
  444.             +        Insert row at cursor position
  445.             -        Delete row at cursor position
  446.  
  447.  
  448. 13)              Move character within box:
  449.               ──────────────────────────
  450.  
  451.             CTRL-CURS_RT    Move character 1 column right
  452.             CTRL-CURS_LF    Move character 1 column left
  453.             CTRL-PG_UP    Move character 1 row up
  454.             CTRL-PG_DN    Move character 1 row down
  455.  
  456.  
  457. 14)            Fold, turn or miniaturize character:
  458.             ────────────────────────────────────
  459.  
  460.             ALT-1        Fold along y axis
  461.             ALT-2        Fold along x axis
  462.             ALT-C        Anti-Clockwise turn 90°
  463.             ALT-S        Delete every 2nd column
  464.             ALT-X        Delete every 2nd row
  465.                     (Note: The latter two are
  466.                     especially useful, if you are
  467.                     preparing a screen font for
  468.                     conversion by FONTCONV; don't
  469.                     forget to use the /n parameter
  470.                     or DOUBLE=Y in this case.
  471.                     The result will be all but
  472.                     perfect, and you will have to
  473.                     clean up the character).
  474.                     Moving your character to the right,
  475.                     left, up or down before applying
  476.                     the latter two procedures may
  477.                     yield better results. Try it out
  478.                     before saving the font (use ESC
  479.                     to restore the character to its pre-
  480.                     vious state).
  481.  
  482.  
  483.  
  484. 15)           Change width of character box (matrix):
  485.            ───────────────────────────────────────
  486.  
  487.             F1        Make box smaller
  488.             F2 or F6    Make box larger up to the  limit
  489.                     set
  490.  
  491. These operations affect the  size of the character  matrix; if it has  already
  492. maximum size, you cannot increase it.
  493.  
  494. 16)             Read area into paste buffer:
  495.              ────────────────────────────
  496.  
  497.             1)        Mark one corner of the area with
  498.                     ALT-M.    There  will be a  marker
  499.                     at the cursor position where you
  500.                     hit ALT-M that looks like ≡.
  501.  
  502.             2)        Move the cursor to the    opposite
  503.                     corner
  504.  
  505.             3)        Press ALT-D to duplicate  every-
  506.                     thing between the marker and the
  507.                     present cursor position into the
  508.                     paste buffer.
  509.  
  510. If you have invoked marking by accident, just hit ALT-D.  The present pixel is
  511. then read into the paste buffer and its prior content dis- carded, but you can
  512. continue editing.   If    you want  to re-locate    the past-marker after pressing
  513. ALT-M just move the cursor to where  you want to have it; the marker  is moved
  514. and the paste buffer  is re-initialized.  The  paste buffer is preserved  over
  515. character or type changes.   You may thus  freely copy parts of  any character
  516. into any other character matrix, provided  they fit in the character box  (see
  517. below).  The contents of the paste buffer can be pasted more than once without
  518. reading it in each time anew.
  519.  
  520.  
  521. 17)    Paste contents of paste buffer to location in character display:
  522.        ────────────────────────────────────────────────────────────────
  523.  
  524. Move the cursor to the upper left corner of the area and press ALT-P.  If  the
  525. contents of the paste  buffer do not fit  into the area, because  the rows are
  526. not long enough,  the remainder is  discarded.    If  the contents of  the paste
  527. buffer contain more rows than can be fitted into the area, remaining rows  are
  528. discarded, too.   If by chance    your pasting of  the buffer contents  into the
  529. character  matrix  generates  a  double  pixel,  the  program issues a warning
  530. message.  No harm occurs, but  you are encouraged to remove this  double pixel
  531. pattern, before  you try  to compile  your character  shape into the printer's
  532. internal form.
  533.  
  534. 18)                  Invert character:
  535.                   ─────────────────
  536.  
  537. You can invert the pixels in the character currently edited (ALT-I).  As  with
  538. pasting, you get a warning message,  if this process creates double pixels  in
  539. one and the same row in the character matrix.
  540.  
  541. 19)         Discard all changes and restore original character:
  542.          ───────────────────────────────────────────────────
  543.  
  544. Press ESC.  ESC restores the character to the shape it had before you started
  545. editing it, except for type changes.
  546.  
  547. 20)            Changing right or left widths:
  548.             ──────────────────────────────
  549.  
  550. If you are editing a fixed-spacing font,  the spaces to the right and left  of
  551. your character are automatically calculated by the program and adapted to your
  552. present character box size (width).  If, however, the font you are editing  is
  553. a proportional    font (no  fixed character  size), you  can alter  these values
  554. manually.  Press  ALT-L for the  left margin space  and ALT-R for  that to the
  555. right.    In both cases you are asked to enter the new values directly into  the
  556. parameter display.   The  values are  checked and  accepted only  if they  are
  557. correct.  Otherwise, the old values  are restored.  This is the  only accasion
  558. where you will interfere with  the parameter display, execept for  type change
  559. (see below).
  560.  
  561. 21)            Switching to a new character:
  562.             ─────────────────────────────
  563.  
  564. From  the  character  display,    you  can  switch  to a new character by simply
  565. pressing the character on the keyboard    (e.d.:    a ). The present  character is
  566. then compiled into its binary representation and the new character  displayed,
  567. if it  exists.     Otherwise a  new empty  character box    is generated  for this
  568. character.  If for some reason    your character contains double pixels (as  the
  569. result    of  a  paste  operation,  for  instance),  it cannot be compiled.  The
  570. program issues an error message, asking you to press any key.  Afterwards  you
  571. are back in the  character display to remove  any double pixels that  might be
  572. present.    Again  you    should    press  a  to  switch  to  the  new  character.
  573. Alternatively, you could press ALT-N to go  to the next or ALT-B to go    to the
  574. previous character.  In any case,  requesting a switch to a character  outside
  575. the present character range results in a warning beep and nothing else.
  576.  
  577. Depending upon    the size  of your  current character,  and depending  upon the
  578. speed of your computing machinery, switching to a different character may take
  579. some time.  You are asked to  wait by FONTED while your character is  compiled
  580. into the program's  internal representation and  the new character  matrix set
  581. up.
  582.  
  583. 22)             Using the alphabet display:
  584.              ───────────────────────────
  585.  
  586. Pressing ALT-A you get into the alphabet display.  You can move around    freely
  587. with the cursor keys,  while a normal DOS  cursor is displayed.   If you press
  588. RETURN on any character, this character is chosen to be edited next.  Pressing
  589. DEL, you can undefine any character (delete it from the character set).   Both
  590. operations are not  allowed on the  present character.     Any errors bring  you
  591. back  to  the  character  display  with  a  warning beep.  ESC brings you back
  592. without this beep.
  593.  
  594. There are a few letters that you can choose for editing only via the  ALPHABET
  595. display.  Mainly, these are characters, whose keys have meaning to the program
  596. itself, for instance:  - + ASCII_13 ASCII_10
  597.  
  598. 23)               Changing the font type:
  599.                ───────────────────────
  600.  
  601. The program detects the  type of the font  automatically on reading it    in, as
  602. long as you have given it appropriate  information.  If what you are doing  is
  603. creating a new character set, the  last font type definition in the  .CNF file
  604. is used as its type specification.   In either case, you might want to    change
  605. this.  Press ALT-T (for type) and enter the new two-letter type specification.
  606. If it is a valid type  identification name, the program compiles your  present
  607. font into the new one.    To do so, it must first compile your present character
  608. into the old format.   If this cannot  be done because of  double pixels being
  609. present, you get the usual error message and the operation is aborted.    If  it
  610. can  be  done,    the  character    set  is converted with all widths informations
  611. changed accordingly.  If the character boxes of any of your characters are  to
  612. large to fit the new format (on changing from a 10 cpi or proportional font to
  613. a 12 cpi font. for instance), they are truncated on the right side.  Otherwise
  614. they are left intact.
  615.  
  616. 24)                  Saving your font:
  617.                   ─────────────────
  618.  
  619. Press CTRL-RETURN.  You shall then be asked to specify an output file.     Enter
  620. the output  file (or  <RETURN>, if  you do  not want  to save  your font.  The
  621. program then requests you to specify a character widths table file.  Enter the
  622. name of this file or  <RETURN>, if you do not  need such a file.   If you have
  623. responded with an empty <RETURN> to  the first question, the program does  not
  624. ask you to specify  a widths table either  and exits.  Otherwise,  the program
  625. saves your font  to the specified  file, writes a  character widths table  (if
  626. directed to do so) and exits afterwards.  If the output file cannot be opened,
  627. the program aborts the    process and returns you  to the editor.   If, however,
  628. the widths table  file cannot be  opened, no widths  table is written  and the
  629. program proceeds  as if  no widths  table file    had been  requested.  From any
  630. correctly written font file you can always get a widths table later.
  631.  
  632. 25)                   Using your font:
  633.                    ────────────────
  634.  
  635. The binary file obtained  (the output file) must  be copied to your  printer's
  636. memory before it can be used.  Do so with the DOS command
  637.  
  638. COPY FONT.BIN LPT1 /B
  639.  
  640. The character widths table gives you information that might be fed into your
  641. favourite word processor (ChiWriter from Horstmann Software, P.O.  Box 5039,
  642. San Jose, CA 95150, California, USA is to be recommended for its flexibility
  643. and ease of use).  The format of the character widths table file produced by
  644. FONTED is (in sequence):
  645.  
  646. letter (decimal ASCII representation)
  647. space to left of character
  648. character matrix width
  649. space to right of character
  650. total character width
  651.  
  652. units are  in /360  inch for  a letter    quality font,  /120 inch  for a  draft
  653. quality font and /80 inch for draft high speed fonts (NEC P 5 6 7).
  654.  
  655. e.d.:    B (66) 4 36 4  44
  656.  
  657. As in the output file, letters are sorted by ascending ASCII sequence.
  658.  
  659. To switch to you new font, you can employ either of two methods:
  660.  
  661.             - Select the "user defined" (HOST) character set
  662.             from your printer's control panel.
  663.  
  664.             - Send    the following  ASCII character    sequence
  665.             directly to your printer (decimal values):
  666.             27 37 1
  667.  
  668. To deselect your  character set, either  re-set your printer  from the control
  669. panel, or send the following byte sequence to the printer:  27 37 0
  670.  
  671. If you    have desingned    a fixed  spacing font  that contains diacritical signs
  672. (like our example font ELGREEK.BIN) and  want to use these signs, preceed  any
  673. of the diacritical signs by a BS (ASCII 8).  This lets the printhead overprint
  674. the letter preceding the  diacritical mark.  You  will have to make  sure that
  675. your word processing software does this automatically.
  676.  
  677. In the sub-directory FONTTEST you will    find several files that are called  by
  678. FONTTEST.BAT.  Switch  on your printer    and enter "FONTTESTTEST"  from the DOS
  679. level; your printer will print a sample from a Greek philosopher's great  work
  680. to show you how to make use of diacritics.
  681.  
  682.  
  683. 26)         Editing fonts without initialization string:
  684.          ────────────────────────────────────────────
  685.  
  686. In the    parameter file,  you can  specify a  font as  having no initialization
  687. string by simply letting  the space between the  first and the second  = signs
  688. free.     Because  the  program    recognizes  the  fonts by their initialization
  689. strings, all such fonts (with no initialization) will be regarded as identical
  690. on reading  them.   If a  font with  no initialization    string is  supplied to
  691. FONTED,  the  program  will  use  recognize  such  a  font as the font in your
  692. configuration definition that  bears the symbolic  name with the  highest rank
  693. acording to  alphabetic ordering  ("AA" is  tried before  "ZZ").  After having
  694. read the font into the computer's memory, you can, however, convert it to  any
  695. of the other types.  To make effective use of this, you should make sure  that
  696. the  last  font  in  your  .CNF  file  that has an empty initialization string
  697. specified, is a proportionally spaced font, like:
  698.  
  699. XX= =37
  700.  
  701. This  leaves  the  widths  informations  intact.    On writing your font after
  702. converting it to the appropriate type and editing it in the usual manner,  you
  703. will find the font correctly writen by the program.
  704.  
  705. You  should  use  this    feature  in  exceptional  cases  only.      Because  the
  706. initialization strings are used by FONTED to recognize the fonts, and  because
  707. an empty initialization string always matches, it may lead to a font being not
  708. recognized correctly.  To prevent you  from incurring any harm from this,  try
  709. to figure out lexically  "large" symbolic names for  such fonts, like "ZZ"  or
  710. "XX":  The program sorts the fonts alphabetically, before trying to match  any
  711. defined initialization    string against    the font  being supplied.   The  first
  712. match counts.
  713.  
  714. 27)             Editing draft quality fonts:
  715.              ────────────────────────────
  716.  
  717. Instead of supplying  initialization strings for  letter quality fonts    to the
  718. program, you can make it edit draft  fonts.  These fonts must comply with  the
  719. restrictions imposed by your particular printer.   For instance, on a NEC  P 6
  720. printer, the characters in a draft quality font must not consist of more  than
  721. 9 columns.  Editing such fonts is straightforward.  You will, however,    notice
  722. that contrary to  letter quality fonts,  they do not  come out with  the right
  723. proportions on the screen.  Rather, they appear squeezed along the x-axis by a
  724. factor of 3  and do not  quite look like  what they appear  as on the printer.
  725. Editing such a    font requires more  imagination on the    part of the  user than
  726. editing a letter quality font.    With a little practice, you can, however,  use
  727. the program to edit draft quality fonts successfully.
  728.  
  729. Editing draft  quality fonts  is slightly  faster than    editin letter  quality
  730. fonts.
  731.  
  732. 28)                  Merging two fonts:
  733.                   ──────────────────
  734.  
  735. If you want to merge the characters of two fonts, you have three options.   In
  736. all cases the two fonts must be of the type:
  737.  
  738. 1) Supply them both consecutively to the printer; in the printer's memory  all
  739. the characters will  be accessible (unless  you have a    double-defined one, in
  740. this case only the last of two versions will be usable).
  741.  
  742. 2) Or you  create a version  of one of    these fonts without  an initialization
  743. string.  Copy this font to the tail (!) of the other font:
  744.  
  745. COPY FONT_A.BIN + FONT_B.BIN FONT.BIN /B (Do not omit the /b parameter!)
  746.  
  747. This will  create a  new font  file that  contains both  fonts; make sure that
  748. FONT_B.BIN was saved  as a font  without a string  to set up  the printer.  In
  749. this  case,  FONTED's  memory  behaves  like  the  printer's:    Of  any   two
  750. double-defined characters only    the last one  will be accessible.   Make sure,
  751. FONT_B.BIN contains characters that  come AFTER those in  FONT_A.BIN according
  752. to the standard ASCII collating sequence.
  753.  
  754. 3) There is a variant  of method 2):  Change  your active font to a  font type
  755. without a printer-setup  string (that initializes  your printer to  a specific
  756. font).    Instead of  saving it to a  new file or overwriting  an existing file,
  757. you can append    it to an  existing file.   On being asked  for the output file
  758. name, just precede the filename with two  ">" signs, as in:  >>FONT.FIL.   The
  759. active font  is then  appended to  FONT.FIL rather  than written  over it.  If
  760. FONT.FIL does not exist, it  is created.  Notice:   This method is by far  the
  761. best of all three; several times we have encountered difficulties with    method
  762. 1)!   Even with  this method,  you should  append characters  to FONT.FIL that
  763. occur later in the alphabet (or ASCII sequence).
  764.  
  765. Generally,  merging  two  fonts  is  a    much safer strategy than attempting at
  766. handling an excessively large font.   FONTED will simply abort with an    error,
  767. if forced to work beyond its capacities.
  768.  
  769. 29)                   General advice:
  770.                    ───────────────
  771.  
  772. We have supplied a  number of fonts with  this package that you  should use as
  773. examples  to  work  upon,  before  trying  to  create a new font from scratch.
  774. Improving upon an  existing font will  always be a  much better strategy  than
  775. creating a new font from scratch.  Try to make as much use as possible of  the
  776. duplicate-and-paste buffer.  This  not only saves you  much time but helps  to
  777. give your characters a more uniform look.
  778.  
  779.  
  780. 30)                Technical information:
  781.                 ──────────────────────
  782.  
  783. The program was written in  PC-SPITBOL, an implementation of the  MacroSPITBOL
  784. language for MS-DOS machines.    SPITBOL is an improved fast  implementation of
  785. the SNOBOL4 language, which is especially suited to non-numerical  programming
  786. in the fields of  string and list processing  as they frequently occur    in the
  787. non-scientific disciplines.
  788.  
  789. The program  calls a  few assembly  language routines  for the    screen and the
  790. keyboard.
  791.  
  792. I/O is done via I/O buffers of 12 KByte size.
  793.  
  794. Internally, the characters are stored  in a TABLE (effectively an  associative
  795. hash array) by ASCII values.  They  are stored as strings of bytes as  sent to
  796. the printer.
  797.  
  798. The byte string of the character  edited is converted to an array  of strings,
  799. forming binary representation of the character's rows.  This array is  scanned
  800. columnwise on being  read back to  the table.    As yet, this  scanning is what
  801. limits the program's speed.
  802.  
  803. Each time marking, duplication and pasting  is invoked, a new paste buffer  is
  804. set up as a new array.
  805.  
  806. On a few  occasions, especially on  overflowing of the    program's memory area,
  807. the  FONTED  may  abort  with  an  error  message.  If this occurs, report the
  808. conditions  as    precisely  as  possible  to  the  author  (including the error
  809. number), so that we can reproduce the  error and fix possible bugs.  In  fact,
  810. FONTED should  correctly edit  and save  any font  that the  NEC P 6 printer's
  811. built-in memory can hold.
  812.  
  813.  
  814. 31)               Example fonts and program files:
  815.                ────────────────────────────────
  816.  
  817. FONTED    .DOC        This documentation file
  818. FONTED    .EXE        FONTED program module
  819. FONTED    .CNF        Configuration file for FONTED
  820. FONTED.  GER        German documentation file
  821. FONTED    .HLP        FONTED help file
  822. FONTHELP.GER        German help file
  823. cyrill    .bin        Cyrillic letter quality proportional
  824. dhgreek .bin        draft high speed Greek
  825. draft    .bin        example small draft font (incomplete)
  826. drgreek .bin        draft Greek
  827. elgreek .bin        Elite letter qulity Greek
  828. gothic    .bin        letter quality proportional Gothic
  829. greek    .bin        letter quality proportional Greek
  830. large    .bin        large scale sanserif font, lq, prop.
  831. sanserif.bin        letter quality, proportional sanserif
  832. uncial    .bin        letter quality proportional uncial
  833.  
  834.  
  835. (Burkhard Meißner).
  836.